package com.petdog.common.util;

import com.petdog.infrastructure.entity.User;
import org.springframework.stereotype.Component;

/**
 * 用户工具类
 * 提供用户实体相关的工具方法
 */
@Component
public class UserUtils {

    /**
     * 获取用户ID
     */
    public static Long getUserId(User user) {
        return user != null ? user.getUserId() : null;
    }

    /**
     * 获取用户名
     */
    public static String getUsername(User user) {
        return user != null ? user.getUsername() : null;
    }

    /**
     * 获取密码
     */
    public static String getPassword(User user) {
        return user != null ? user.getPassword() : null;
    }

    /**
     * 设置密码
     */
    public static void setPassword(User user, String password) {
        if (user != null) {
            user.setPassword(password);
        }
    }

    /**
     * 获取邮箱
     */
    public static String getEmail(User user) {
        return user != null ? user.getEmail() : null;
    }

    /**
     * 获取手机号
     */
    public static String getPhone(User user) {
        return user != null ? user.getPhone() : null;
    }

    /**
     * 获取昵称
     */
    public static String getNickname(User user) {
        return user != null ? user.getNickname() : null;
    }

    /**
     * 设置昵称
     */
    public static void setNickname(User user, String nickname) {
        if (user != null) {
            user.setNickname(nickname);
        }
    }

    /**
     * 获取头像
     */
    public static String getAvatar(User user) {
        return user != null ? user.getAvatar() : null;
    }

    /**
     * 设置头像
     */
    public static void setAvatar(User user, String avatar) {
        if (user != null) {
            user.setAvatar(avatar);
        }
    }

    /**
     * 获取状态
     */
    public static Integer getStatus(User user) {
        return user != null ? user.getStatus() : null;
    }

    /**
     * 设置状态
     */
    public static void setStatus(User user, Integer status) {
        if (user != null) {
            user.setStatus(status);
        }
    }

    /**
     * 获取角色
     */
    public static Integer getRole(User user) {
        return user != null ? user.getRole() : null;
    }

    /**
     * 设置角色
     */
    public static void setRole(User user, Integer role) {
        if (user != null) {
            user.setRole(role);
        }
    }

    /**
     * 设置创建时间
     */
    public static void setCreateTime(User user, java.time.LocalDateTime createTime) {
        if (user != null) {
            user.setCreateTime(createTime);
        }
    }

    /**
     * 设置更新时间
     */
    public static void setUpdateTime(User user, java.time.LocalDateTime updateTime) {
        if (user != null) {
            user.setUpdateTime(updateTime);
        }
    }

    /**
     * 设置登录次数
     */
    public static void setLoginCount(User user, Integer loginCount) {
        if (user != null) {
            user.setLoginCount(loginCount);
        }
    }

    /**
     * 设置邮箱是否已验证
     */
    public static void setEmailVerified(User user, Boolean emailVerified) {
        if (user != null) {
            user.setEmailVerified(emailVerified);
        }
    }

    /**
     * 设置手机是否已验证
     */
    public static void setPhoneVerified(User user, Boolean phoneVerified) {
        if (user != null) {
            user.setPhoneVerified(phoneVerified);
        }
    }
    
    /**
     * 获取性别
     */
    public static Integer getGender(User user) {
        return user != null ? user.getGender() : null;
    }
    
    /**
     * 设置性别
     */
    public static void setGender(User user, Integer gender) {
        if (user != null) {
            user.setGender(gender);
        }
    }
    
    /**
     * 获取生日
     */
    public static String getBirthday(User user) {
        return user != null ? user.getBirthday() : null;
    }
    
    /**
     * 设置生日
     */
    public static void setBirthday(User user, String birthday) {
        if (user != null) {
            user.setBirthday(birthday);
        }
    }
    
    /**
     * 获取个人简介
     */
    public static String getBio(User user) {
        return user != null ? user.getBio() : null;
    }
    
    /**
     * 设置个人简介
     */
    public static void setBio(User user, String bio) {
        if (user != null) {
            user.setBio(bio);
        }
    }
    
    /**
     * 获取所在地
     */
    public static String getLocation(User user) {
        return user != null ? user.getLocation() : null;
    }
    
    /**
     * 设置所在地
     */
    public static void setLocation(User user, String location) {
        if (user != null) {
            user.setLocation(location);
        }
    }
}